package gervosou;
import java.awt.EventQueue;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JMenu;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.SwingConstants;
import java.awt.event.ItemListener;
import java.awt.event.ItemEvent;
/**
 * Fenetre principale de l'application Banque avec le menu 
 * @author IUT,  A.Front 
 * @version 1.0
 */
public class VueMenuBanque  extends Vue{
	/**
	 * 
	 */
	//private static final long serialVersionUID = -4354257027854726437L;
	private JFrame frmMenuPrincipalBanque;

	// ************************************************************************************************************
	// Constructeur
	// ************************************************************************************************************
	public VueMenuBanque(Controleur controleur) {
		super (controleur);
		this.initialize();
	} // Fin Constructeur
	
	public JFrame getFrame() {
		return frmMenuPrincipalBanque;	
	}
	/**
	 * Initialize the contents of the frame.
	 */
	private void initialize() {
		frmMenuPrincipalBanque = new JFrame();
		frmMenuPrincipalBanque.setTitle("Menu principal Banque Gervosou");
		frmMenuPrincipalBanque.setBounds(100, 100, 450, 300);
		frmMenuPrincipalBanque.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); 
		frmMenuPrincipalBanque.addWindowListener (new WindowAdapter() {
			public void windowClosing (WindowEvent e) {
			getControleur().fermerVue(VueMenuBanque.this);
			}
		});
		frmMenuPrincipalBanque.getContentPane().setLayout(null);
		
		JMenuBar menuBar = new JMenuBar();
		menuBar.setBounds(88, 48, 236, 21);
		frmMenuPrincipalBanque.getContentPane().add(menuBar);
		
		JMenu mnApplication = new JMenu("Application");
		mnApplication.setHorizontalAlignment(SwingConstants.LEFT);
		menuBar.add(mnApplication);
		
		JMenuItem menuItemQuitter = new JMenuItem("Quitter");
		menuItemQuitter.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				getControleur().fermerVue(VueMenuBanque.this);
				}		
		});
		mnApplication.add(menuItemQuitter);
		
		JMenu mnClient = new JMenu("Client");
		menuBar.add(mnClient);
		
		JMenuItem menuItemNouvClient = new JMenuItem("Nouveau client");		
		menuItemNouvClient.addActionListener(new ActionListener()
		 {
			public void actionPerformed(ActionEvent event) {
				//  affichage de la fenetre de saisie d'un nouveau client
				getControleur().NouvClientPhysique() ;}
		});		
		mnClient.add(menuItemNouvClient);
		
		
		JMenu mnSociete = new JMenu("Societe");
		menuBar.add(mnSociete);
		JMenuItem menuItemNouvSociete = new JMenuItem("Nouvelle Societe");
		menuItemNouvSociete.addActionListener(new ActionListener (){
			public void actionPerformed(ActionEvent event) {
				getControleur().NouvSociete();
			}
		});
		mnSociete.add(menuItemNouvSociete);
		
		JMenuItem menuItemNouveauCompteSoc = new JMenuItem("Nouveau Compte");
		menuItemNouveauCompteSoc.addActionListener(new ActionListener()
		 {
			public void actionPerformed(ActionEvent event) {
				//  affichage de la fenetre de saisie d'un nouveau compte
				getControleur().NouvCompteSociete() ;}
		});
		mnSociete.add(menuItemNouveauCompteSoc);
		
		JMenuItem menuitemNouvMand = new JMenuItem("Nouveau Mandataire");
		menuitemNouvMand.addActionListener(new ActionListener (){
			public void actionPerformed(ActionEvent event) {
				getControleur().NouvMandat();
			}
		});
		mnSociete.add(menuitemNouvMand);
		
				
		JMenu menu = new JMenu("Compte");
		menuBar.add(menu);
		
		JMenuItem menuItemNouvCompte = new JMenuItem("Nouveau compte personnel");
		menuItemNouvCompte.addActionListener(new ActionListener()
		 {
			public void actionPerformed(ActionEvent event) {
				//  affichage de la fenetre de saisie d'un nouveau compte
				getControleur().NouvComptePerso() ;}
		});
		menu.add(menuItemNouvCompte);
		
		JMenuItem menuItemDepotArgent = new JMenuItem("Depot d'argent");
		menuItemDepotArgent.addActionListener(new ActionListener()
		 {
			public void actionPerformed(ActionEvent event) {
				//  affichage de la fenetre de saisie d'un nouveau compte
				getControleur().DepotArgent() ;}
		});
		menu.add(menuItemDepotArgent);
		frmMenuPrincipalBanque.setVisible(true);
		
		JMenuItem menuItemRetraitArgent = new JMenuItem("Retrait d'argent");
		menuItemRetraitArgent.addActionListener(new ActionListener()
		 {
			public void actionPerformed(ActionEvent event) {
				//  affichage de la fenetre de saisie d'un nouveau compte
				getControleur().RetraitArgent() ;}
		});
		menu.add(menuItemRetraitArgent);
		frmMenuPrincipalBanque.setVisible(true);
		
		JMenuItem menuItemConsultComptePerso = new JMenuItem("Consulter compte personnel");
		menuItemConsultComptePerso.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent event) {
			
				getControleur().ConsultComptePerso();

			}
		});
		menu.add(menuItemConsultComptePerso);
		
		JMenuItem menuItemConsultComptesSociete = new JMenuItem("Consulter comptes societe");
		menuItemConsultComptesSociete.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent event) {
			
				getControleur().ConsultComptesSociete();

			}
		});
		menu.add(menuItemConsultComptesSociete);
		frmMenuPrincipalBanque.setVisible(true);
	
	}
	
	/**
	 * méthode exécutée lorsque la croix de fermeture de la fenêtre a été cliquée
	 */
	public void windowClosing (WindowEvent e) {
		getControleur().fermerVue(VueMenuBanque.this);
	}

}
